/*
 * Indexador.h
 *
 *  Created on: 18/11/2011
 *      Author: Nestor Huallpa
 */

#ifndef INDEXADOR_H_
#define INDEXADOR_H_

#include "../../../estructuras/lista/Lista.h"

#include "../ManejadorPatricia.h"
#include "ManejadorParticiones.h"
#include <stdio.h> //para usar fopen

/*typedef */enum tEstadoIndexador { OK, ERROR_ARCHIVO };

class Indexador {

	ManejadorPatricia manejadorPatricia;
	ManejadorParticiones manejadorParticiones;


public:
	Indexador();

	/*
	 * para ver si el indice existe preguntando por la existencia de FILENAME_INDICE*/
	bool existeIndice();
	/**
	 *
	 * Contabiliza los terminos y sus punteros, frecuencias, cantidad de documentos
	 * */
	void indexar(Lista<std::string>* listaTerminos, long int nroDocumento);

	/**
	 * Genera un indice con soporte en Disco
	 * */
	tEstadoIndexador finalizar();

	virtual ~Indexador();
};



#endif /* INDEXADOR_H_ */
